1. Field of Art
The present invention generally relates to the field of software development and in particular to creating and managing documentation for software products.
2. Background of the Invention
Enterprises that develop software have an ongoing need to document the software code. The documentation is helpful to explain how or why the code was developed, and may assist in future attempts to improve or extend the code. The documentation typically includes electronic documentation of application programming interfaces (APIs) used in the code, and may also include code samples showing how the APIs are used. Ideally, the code samples in the documentation are functional, so that a developer reviewing the documentation can copy-and-paste the code sample from the documentation into development code.
However, it is difficult to create and maintain documentation containing working code samples. One problem is that people who write documentation often use a word processor, rather than a coding tool, to write the code samples. The word processor lacks development tools present in a coding tool and, as a result, the code samples in the documentation may contain typographical or other errors that make the samples non-functional. Sometimes, people writing documentation use the coding tools to write the code samples and then copy the samples from the tools to the documentation. However, subsequent edits to the documentation can still introduce errors into the code samples.
Bit rot is another reason why code samples in documentation are often non-functional. Generally, code samples in documentation remain static while real-world code evolves. As a result, the code samples in the documentation become stale (known as “bit rot”). For example, the dependencies of a code sample may change, rendering it inoperable.